home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-07-11 | 3.0 KB | 51 lines | [TEXT/MSBA] |
- 'WINDOW CLOSE 1:WINDOW 2,,(0,20)-(525,350):'this line experimental only.
- 1 CLEAR:CLS:PRINT "PLOT FUNS-MultiFunction Plotter in Hi/Lo Res.Graphics.":PRINT "TYPE FUNCTIONS ON LINES 11-19 eg: 11 Y(1)=X^2-3 , 12 Y(2)=SIN (X)+X"
- 2 W=70:N=10:INPUT "NUMBER OF FUNCTIONS=";Q:DIM M$(4),Y(Q),A(Q),M(Q),U(Q),Z(Q):W=W-1:P=490:Y=298:R=10:S=7:'P,Y=Screen horizontal,vertical pixels.R=Pix/line,S=Pix/letter,including space.
- 3 PRINT"For SLOPE plots, see notes below listing.":FOR J=0 TO INT(W/5):M$(0)=M$(0)+"v----":NEXT J:Z=(2+Q)*16-9
- 4 FOR J=0 TO W:M$(1)=M$(1)+"-":NEXT J:INPUT " Precision Graphics (1/0)?=";D
- 5 INPUT "STARTING X=";X:INPUT "X Increment (L)=";L:L1=L
- 6 IF D=1 THEN INPUT "Pixel Step M(if >1,plot is faster,lower precision)=";M:L=L/R:L1=2*L*M:PRINT" Note Box [] at X=0"
- 7 PRINT "Y(0)-AXIS ZERO(0-";W;:INPUT ")=";Y(0)
- 8 FOR J=1 TO Q:PRINT "Y(";J;") MULTIPLIER M(";J;")=";:INPUT M(J):PRINT "Y(";J;") OFFSET A(";J;")=";:INPUT A(J):NEXT J:CLS
- 9 PRINT "Xo=";X;"; X(vertical section)=";10*L1:'This line to PRINTER for TEXT-style LoRes Graph.
- 10 FOR J=1 TO Q:PRINT"For Y(";J;"),v----v=";5/M(J);" :OFFSET=";A(J):NEXT J:IF D=1 THEN PRINT M$(0):GOSUB 160:'These lines also to PRINTER for LoRes.
- 11 Y(1)=10*SIN(3.14159*X)
- 12 Y(2)=-10*SIN(3.14159*X*2)
- 13 Y(3)=15:IF X>=0 THEN Y(3)=5
- 14 'PI=3.141592#:Y(4)=(PI*SIN(5*X)/8-EXP(PI*SQR(X+1)/8)+SQR(X+PI*5/8))*SQR(1+PI*(X-1)^2/8)/((EXP(-1*X*X)-PI/4)*(1+PI*(X+1)^2/8))+PI/8
- 20 IF D=1 THEN GOSUB 200:GOTO 11
- 30 FOR J=1 TO Q:Y(J)=INT (Y(0)+M(J)*Y(J)+A(J)+.5):NEXT J
- 40 IF K=0 THEN K=1:M$(2)=M$(0):GOTO 60
- 50 M$(2)=M$(1)
- 60 IF (L>0 AND X>=-L/2 AND K3=0) OR (L<0 AND X<=L/2 AND K3=0) THEN K3=1:K4=1
- 70 V$="+"
- 80 FOR J=0 TO Q:IF J=0 AND N=10 THEN N=0:GOTO 130
- 90 IF Y(J)>W THEN Y(J)=W:V$=">":GOTO 130
- 100 IF Y(J)<0 THEN Y(J)=0:V$="<":GOTO 130
- 110 IF J=0 THEN V$="l":GOTO 130
- 120 V$=CHR$(J+48)
- 130 IF K4=1 THEN V$="O"
- 140 M$(3)=MID$(M$(2),1,Y(J)):M$(4)=MID$(M$(2),Y(J)+2,W-Y(J)):M$(2)=M$(3)+V$+M$(4)
- 150 NEXT J:PRINT M$(2):K4=0:X=X+L:N=N+1:GOTO 11:'This line to Printer for LoRes Plot
- 160 IF L>0 AND X>0 OR L<0 AND X<0 THEN RETURN
- 170 LINE((Y(0)+1)*S-2,ABS(X/L)+3+Z)-((Y(0)+1)*S+5,ABS(X/L)-3+Z),,B:RETURN:'Sets zero box on scale
- ' HiRes Plot Follows:
- 200 IF K=0 THEN K=1:FOR J=1 TO Q:Z(J)=Y(J):NEXT J:X=X+M*L:RETURN
- 210 FOR J=0 TO Q:U=(A(J)+M(J)*Z(J)+Y(0)+1)*S-2:V=(A(J)+M(J)*Y(J)+Y(0)+1)*S-2
- 220 IF ABS (U)>3000 THEN U=3000*SGN(U)
- 225 IF ABS (V)>3000 THEN V=3000*SGN(V)
- 230 LINE(U,Z)-(V,Z+M):Z(J)=Y(J)
- 240 IF J=0 AND A=3 THEN A=-1:LINE-(V+3,Z+M):IF B=19 THEN B=-1:LINE-(V+6,Z+M)
- 270 NEXT J:Z=Z+M:IF Z+M>Y-10 THEN LOCATE 19,1:PRINT:Z=Z-16
- 280 X=X+M*L:A=A+1:B=B+1:RETURN
-
- 'For Slope plotting,transfer the following lines into PLOTFUNS,where examples
- 'Y(1),Y(2) can be the same or different functions (remove ' marks) :
- '11 Y(1)=10*SIN(3.14159*X) ...................... this will be plotted directly
- '12 Z1=.0001:X=X+Z1:GOSUB 13:F1=Y(2):X=X-2*Z1:GOSUB 13:F2=Y(2):X=X+Z1:Y(2)=(F1-F2)/(2*Z1):GOTO 20
- '13 Y(2)=10*SIN(3.14159*X) ...................... slope of this will be plotted
- '14 RETURN
- MACINTOSH LISTING
-
-
-